// ███╗   ██╗ ██████╗ ████████╗██╗ ██████╗███████╗
// ████╗  ██║██╔═══██╗╚══██╔══╝██║██╔════╝██╔════╝
// ██╔██╗ ██║██║   ██║   ██║   ██║██║     █████╗  
// ██║╚██╗██║██║   ██║   ██║   ██║██║     ██╔══╝  
// ██║ ╚████║╚██████╔╝   ██║   ██║╚██████╗███████╗
// ╚═╝  ╚═══╝ ╚═════╝    ╚═╝   ╚═╝ ╚═════╝╚══════╝
// -----------------------------------------------
//  
// This file is automatically generated 
// Please do not edit these files manually
// Run the following in the root of the repos:
//
// 		*NIX 		:	./build.sh codegen
// 		Windows 	:	build.bat codegen
//
// -----------------------------------------------
// ReSharper disable RedundantUsingDirective
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
using System.Runtime.Serialization;
using Elasticsearch.Net;
using Elasticsearch.Net.Utf8Json;
using Elasticsearch.Net.Specification.MachineLearningApi;

// ReSharper disable RedundantBaseConstructorCall
// ReSharper disable UnusedTypeParameter
// ReSharper disable PartialMethodWithSinglePart
// ReSharper disable RedundantNameQualifier
namespace Nest
{
	[InterfaceDataContract]
	public partial interface ICloseJobRequest : IRequest<CloseJobRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for CloseJob <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-close-job.html</para></summary>
	public partial class CloseJobRequest : PlainRequestBase<CloseJobRequestParameters>, ICloseJobRequest
	{
		protected ICloseJobRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningCloseJob;
		///<summary>/_ml/anomaly_detectors/{job_id}/_close</summary>
		///<param name = "jobId">this parameter is required</param>
		public CloseJobRequest(Id jobId): base(r => r.Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected CloseJobRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id ICloseJobRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		// Request parameters
		///<summary>Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)</summary>
		[Obsolete("Scheduled to be removed in 8.0, deprecated")]
		public bool? AllowNoJobs
		{
			get => Q<bool? >("allow_no_jobs");
			set => Q("allow_no_jobs", value);
		}

		///<summary>Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)</summary>
		public bool? AllowNoMatch
		{
			get => Q<bool? >("allow_no_match");
			set => Q("allow_no_match", value);
		}

		///<summary>True if the job should be forcefully closed</summary>
		public bool? Force
		{
			get => Q<bool? >("force");
			set => Q("force", value);
		}

		///<summary>Controls the time to wait until a job has closed. Default to 30 minutes</summary>
		public Time Timeout
		{
			get => Q<Time>("timeout");
			set => Q("timeout", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IDeleteCalendarRequest : IRequest<DeleteCalendarRequestParameters>
	{
		[IgnoreDataMember]
		Id CalendarId
		{
			get;
		}
	}

	///<summary>Request for DeleteCalendar <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar.html</para></summary>
	public partial class DeleteCalendarRequest : PlainRequestBase<DeleteCalendarRequestParameters>, IDeleteCalendarRequest
	{
		protected IDeleteCalendarRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningDeleteCalendar;
		///<summary>/_ml/calendars/{calendar_id}</summary>
		///<param name = "calendarId">this parameter is required</param>
		public DeleteCalendarRequest(Id calendarId): base(r => r.Required("calendar_id", calendarId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected DeleteCalendarRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IDeleteCalendarRequest.CalendarId => Self.RouteValues.Get<Id>("calendar_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IDeleteCalendarEventRequest : IRequest<DeleteCalendarEventRequestParameters>
	{
		[IgnoreDataMember]
		Id CalendarId
		{
			get;
		}

		[IgnoreDataMember]
		Id EventId
		{
			get;
		}
	}

	///<summary>Request for DeleteCalendarEvent <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar-event.html</para></summary>
	public partial class DeleteCalendarEventRequest : PlainRequestBase<DeleteCalendarEventRequestParameters>, IDeleteCalendarEventRequest
	{
		protected IDeleteCalendarEventRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningDeleteCalendarEvent;
		///<summary>/_ml/calendars/{calendar_id}/events/{event_id}</summary>
		///<param name = "calendarId">this parameter is required</param>
		///<param name = "eventId">this parameter is required</param>
		public DeleteCalendarEventRequest(Id calendarId, Id eventId): base(r => r.Required("calendar_id", calendarId).Required("event_id", eventId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected DeleteCalendarEventRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IDeleteCalendarEventRequest.CalendarId => Self.RouteValues.Get<Id>("calendar_id");
		[IgnoreDataMember]
		Id IDeleteCalendarEventRequest.EventId => Self.RouteValues.Get<Id>("event_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IDeleteCalendarJobRequest : IRequest<DeleteCalendarJobRequestParameters>
	{
		[IgnoreDataMember]
		Id CalendarId
		{
			get;
		}

		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for DeleteCalendarJob <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-calendar-job.html</para></summary>
	public partial class DeleteCalendarJobRequest : PlainRequestBase<DeleteCalendarJobRequestParameters>, IDeleteCalendarJobRequest
	{
		protected IDeleteCalendarJobRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningDeleteCalendarJob;
		///<summary>/_ml/calendars/{calendar_id}/jobs/{job_id}</summary>
		///<param name = "calendarId">this parameter is required</param>
		///<param name = "jobId">this parameter is required</param>
		public DeleteCalendarJobRequest(Id calendarId, Id jobId): base(r => r.Required("calendar_id", calendarId).Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected DeleteCalendarJobRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IDeleteCalendarJobRequest.CalendarId => Self.RouteValues.Get<Id>("calendar_id");
		[IgnoreDataMember]
		Id IDeleteCalendarJobRequest.JobId => Self.RouteValues.Get<Id>("job_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IDeleteDatafeedRequest : IRequest<DeleteDatafeedRequestParameters>
	{
		[IgnoreDataMember]
		Id DatafeedId
		{
			get;
		}
	}

	///<summary>Request for DeleteDatafeed <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-datafeed.html</para></summary>
	public partial class DeleteDatafeedRequest : PlainRequestBase<DeleteDatafeedRequestParameters>, IDeleteDatafeedRequest
	{
		protected IDeleteDatafeedRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningDeleteDatafeed;
		///<summary>/_ml/datafeeds/{datafeed_id}</summary>
		///<param name = "datafeedId">this parameter is required</param>
		public DeleteDatafeedRequest(Id datafeedId): base(r => r.Required("datafeed_id", datafeedId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected DeleteDatafeedRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IDeleteDatafeedRequest.DatafeedId => Self.RouteValues.Get<Id>("datafeed_id");
		// Request parameters
		///<summary>True if the datafeed should be forcefully deleted</summary>
		public bool? Force
		{
			get => Q<bool? >("force");
			set => Q("force", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IDeleteExpiredDataRequest : IRequest<DeleteExpiredDataRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for DeleteExpiredData <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-expired-data.html</para></summary>
	public partial class DeleteExpiredDataRequest : PlainRequestBase<DeleteExpiredDataRequestParameters>, IDeleteExpiredDataRequest
	{
		protected IDeleteExpiredDataRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningDeleteExpiredData;
		///<summary>/_ml/_delete_expired_data/{job_id}</summary>
		///<param name = "jobId">Optional, accepts null</param>
		public DeleteExpiredDataRequest(Id jobId): base(r => r.Optional("job_id", jobId))
		{
		}

		///<summary>/_ml/_delete_expired_data</summary>
		public DeleteExpiredDataRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IDeleteExpiredDataRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		// Request parameters
		///<summary>The desired requests per second for the deletion processes.</summary>
		public long? RequestsPerSecond
		{
			get => Q<long? >("requests_per_second");
			set => Q("requests_per_second", value);
		}

		///<summary>How long can the underlying delete processes run until they are canceled</summary>
		public Time Timeout
		{
			get => Q<Time>("timeout");
			set => Q("timeout", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IDeleteFilterRequest : IRequest<DeleteFilterRequestParameters>
	{
		[IgnoreDataMember]
		Id FilterId
		{
			get;
		}
	}

	///<summary>Request for DeleteFilter <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-filter.html</para></summary>
	public partial class DeleteFilterRequest : PlainRequestBase<DeleteFilterRequestParameters>, IDeleteFilterRequest
	{
		protected IDeleteFilterRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningDeleteFilter;
		///<summary>/_ml/filters/{filter_id}</summary>
		///<param name = "filterId">this parameter is required</param>
		public DeleteFilterRequest(Id filterId): base(r => r.Required("filter_id", filterId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected DeleteFilterRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IDeleteFilterRequest.FilterId => Self.RouteValues.Get<Id>("filter_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IDeleteForecastRequest : IRequest<DeleteForecastRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}

		[IgnoreDataMember]
		Ids ForecastId
		{
			get;
		}
	}

	///<summary>Request for DeleteForecast <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-forecast.html</para></summary>
	public partial class DeleteForecastRequest : PlainRequestBase<DeleteForecastRequestParameters>, IDeleteForecastRequest
	{
		protected IDeleteForecastRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningDeleteForecast;
		///<summary>/_ml/anomaly_detectors/{job_id}/_forecast/{forecast_id}</summary>
		///<param name = "jobId">this parameter is required</param>
		///<param name = "forecastId">this parameter is required</param>
		public DeleteForecastRequest(Id jobId, Ids forecastId): base(r => r.Required("job_id", jobId).Required("forecast_id", forecastId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected DeleteForecastRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IDeleteForecastRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		[IgnoreDataMember]
		Ids IDeleteForecastRequest.ForecastId => Self.RouteValues.Get<Ids>("forecast_id");
		// Request parameters
		///<summary>Whether to ignore if `_all` matches no forecasts</summary>
		public bool? AllowNoForecasts
		{
			get => Q<bool? >("allow_no_forecasts");
			set => Q("allow_no_forecasts", value);
		}

		///<summary>Controls the time to wait until the forecast(s) are deleted. Default to 30 seconds</summary>
		public Time Timeout
		{
			get => Q<Time>("timeout");
			set => Q("timeout", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IDeleteJobRequest : IRequest<DeleteJobRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for DeleteJob <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-job.html</para></summary>
	public partial class DeleteJobRequest : PlainRequestBase<DeleteJobRequestParameters>, IDeleteJobRequest
	{
		protected IDeleteJobRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningDeleteJob;
		///<summary>/_ml/anomaly_detectors/{job_id}</summary>
		///<param name = "jobId">this parameter is required</param>
		public DeleteJobRequest(Id jobId): base(r => r.Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected DeleteJobRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IDeleteJobRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		// Request parameters
		///<summary>True if the job should be forcefully deleted</summary>
		public bool? Force
		{
			get => Q<bool? >("force");
			set => Q("force", value);
		}

		///<summary>Should this request wait until the operation has completed before returning</summary>
		public bool? WaitForCompletion
		{
			get => Q<bool? >("wait_for_completion");
			set => Q("wait_for_completion", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IDeleteModelSnapshotRequest : IRequest<DeleteModelSnapshotRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}

		[IgnoreDataMember]
		Id SnapshotId
		{
			get;
		}
	}

	///<summary>Request for DeleteModelSnapshot <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-delete-snapshot.html</para></summary>
	public partial class DeleteModelSnapshotRequest : PlainRequestBase<DeleteModelSnapshotRequestParameters>, IDeleteModelSnapshotRequest
	{
		protected IDeleteModelSnapshotRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningDeleteModelSnapshot;
		///<summary>/_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}</summary>
		///<param name = "jobId">this parameter is required</param>
		///<param name = "snapshotId">this parameter is required</param>
		public DeleteModelSnapshotRequest(Id jobId, Id snapshotId): base(r => r.Required("job_id", jobId).Required("snapshot_id", snapshotId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected DeleteModelSnapshotRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IDeleteModelSnapshotRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		[IgnoreDataMember]
		Id IDeleteModelSnapshotRequest.SnapshotId => Self.RouteValues.Get<Id>("snapshot_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IEstimateModelMemoryRequest : IRequest<EstimateModelMemoryRequestParameters>
	{
	}

	///<summary>Request for EstimateModelMemory <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-apis.html</para></summary>
	public partial class EstimateModelMemoryRequest : PlainRequestBase<EstimateModelMemoryRequestParameters>, IEstimateModelMemoryRequest
	{
		protected IEstimateModelMemoryRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningEstimateModelMemory;
	// values part of the url path
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IFlushJobRequest : IRequest<FlushJobRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for FlushJob <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-flush-job.html</para></summary>
	public partial class FlushJobRequest : PlainRequestBase<FlushJobRequestParameters>, IFlushJobRequest
	{
		protected IFlushJobRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningFlushJob;
		///<summary>/_ml/anomaly_detectors/{job_id}/_flush</summary>
		///<param name = "jobId">this parameter is required</param>
		public FlushJobRequest(Id jobId): base(r => r.Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected FlushJobRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IFlushJobRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		// Request parameters
		///<summary>Skips time to the given value without generating results or updating the model for the skipped interval</summary>
		public string SkipTime
		{
			get => Q<string>("skip_time");
			set => Q("skip_time", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IForecastJobRequest : IRequest<ForecastJobRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for ForecastJob <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-forecast.html</para></summary>
	public partial class ForecastJobRequest : PlainRequestBase<ForecastJobRequestParameters>, IForecastJobRequest
	{
		protected IForecastJobRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningForecastJob;
		///<summary>/_ml/anomaly_detectors/{job_id}/_forecast</summary>
		///<param name = "jobId">this parameter is required</param>
		public ForecastJobRequest(Id jobId): base(r => r.Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected ForecastJobRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IForecastJobRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		// Request parameters
		///<summary>The max memory able to be used by the forecast. Default is 20mb.</summary>
		public string MaxModelMemory
		{
			get => Q<string>("max_model_memory");
			set => Q("max_model_memory", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IGetBucketsRequest : IRequest<GetBucketsRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}

		[IgnoreDataMember]
		Timestamp Timestamp
		{
			get;
		}
	}

	///<summary>Request for GetBuckets <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-bucket.html</para></summary>
	public partial class GetBucketsRequest : PlainRequestBase<GetBucketsRequestParameters>, IGetBucketsRequest
	{
		protected IGetBucketsRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningGetBuckets;
		///<summary>/_ml/anomaly_detectors/{job_id}/results/buckets/{timestamp}</summary>
		///<param name = "jobId">this parameter is required</param>
		///<param name = "timestamp">Optional, accepts null</param>
		public GetBucketsRequest(Id jobId, Timestamp timestamp): base(r => r.Required("job_id", jobId).Optional("timestamp", timestamp))
		{
		}

		///<summary>/_ml/anomaly_detectors/{job_id}/results/buckets</summary>
		///<param name = "jobId">this parameter is required</param>
		public GetBucketsRequest(Id jobId): base(r => r.Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected GetBucketsRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IGetBucketsRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		[IgnoreDataMember]
		Timestamp IGetBucketsRequest.Timestamp => Self.RouteValues.Get<Timestamp>("timestamp");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IGetCalendarEventsRequest : IRequest<GetCalendarEventsRequestParameters>
	{
		[IgnoreDataMember]
		Id CalendarId
		{
			get;
		}
	}

	///<summary>Request for GetCalendarEvents <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar-event.html</para></summary>
	public partial class GetCalendarEventsRequest : PlainRequestBase<GetCalendarEventsRequestParameters>, IGetCalendarEventsRequest
	{
		protected IGetCalendarEventsRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningGetCalendarEvents;
		///<summary>/_ml/calendars/{calendar_id}/events</summary>
		///<param name = "calendarId">this parameter is required</param>
		public GetCalendarEventsRequest(Id calendarId): base(r => r.Required("calendar_id", calendarId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected GetCalendarEventsRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IGetCalendarEventsRequest.CalendarId => Self.RouteValues.Get<Id>("calendar_id");
		// Request parameters
		///<summary>Get events before this time</summary>
		public DateTimeOffset? End
		{
			get => Q<DateTimeOffset? >("end");
			set => Q("end", value);
		}

		///<summary>Get events for the job. When this option is used calendar_id must be '_all'</summary>
		public string JobId
		{
			get => Q<string>("job_id");
			set => Q("job_id", value);
		}

		///<summary>Get events after this time</summary>
		public string Start
		{
			get => Q<string>("start");
			set => Q("start", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IGetCalendarsRequest : IRequest<GetCalendarsRequestParameters>
	{
		[IgnoreDataMember]
		Id CalendarId
		{
			get;
		}
	}

	///<summary>Request for GetCalendars <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-calendar.html</para></summary>
	public partial class GetCalendarsRequest : PlainRequestBase<GetCalendarsRequestParameters>, IGetCalendarsRequest
	{
		protected IGetCalendarsRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningGetCalendars;
		///<summary>/_ml/calendars</summary>
		public GetCalendarsRequest(): base()
		{
		}

		///<summary>/_ml/calendars/{calendar_id}</summary>
		///<param name = "calendarId">Optional, accepts null</param>
		public GetCalendarsRequest(Id calendarId): base(r => r.Optional("calendar_id", calendarId))
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IGetCalendarsRequest.CalendarId => Self.RouteValues.Get<Id>("calendar_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IGetCategoriesRequest : IRequest<GetCategoriesRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}

		[IgnoreDataMember]
		LongId CategoryId
		{
			get;
		}
	}

	///<summary>Request for GetCategories <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-category.html</para></summary>
	public partial class GetCategoriesRequest : PlainRequestBase<GetCategoriesRequestParameters>, IGetCategoriesRequest
	{
		protected IGetCategoriesRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningGetCategories;
		///<summary>/_ml/anomaly_detectors/{job_id}/results/categories/{category_id}</summary>
		///<param name = "jobId">this parameter is required</param>
		///<param name = "categoryId">Optional, accepts null</param>
		public GetCategoriesRequest(Id jobId, LongId categoryId): base(r => r.Required("job_id", jobId).Optional("category_id", categoryId))
		{
		}

		///<summary>/_ml/anomaly_detectors/{job_id}/results/categories/</summary>
		///<param name = "jobId">this parameter is required</param>
		public GetCategoriesRequest(Id jobId): base(r => r.Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected GetCategoriesRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IGetCategoriesRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		[IgnoreDataMember]
		LongId IGetCategoriesRequest.CategoryId => Self.RouteValues.Get<LongId>("category_id");
		// Request parameters
		///<summary>
		/// Specifies the partition to retrieve categories for. This is optional, and should never be used for jobs where per-partition categorization
		/// is disabled.
		///</summary>
		public Field PartitionFieldValue
		{
			get => Q<Field>("partition_field_value");
			set => Q("partition_field_value", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IGetDatafeedStatsRequest : IRequest<GetDatafeedStatsRequestParameters>
	{
		[IgnoreDataMember]
		Id DatafeedId
		{
			get;
		}
	}

	///<summary>Request for GetDatafeedStats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed-stats.html</para></summary>
	public partial class GetDatafeedStatsRequest : PlainRequestBase<GetDatafeedStatsRequestParameters>, IGetDatafeedStatsRequest
	{
		protected IGetDatafeedStatsRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningGetDatafeedStats;
		///<summary>/_ml/datafeeds/{datafeed_id}/_stats</summary>
		///<param name = "datafeedId">Optional, accepts null</param>
		public GetDatafeedStatsRequest(Id datafeedId): base(r => r.Optional("datafeed_id", datafeedId))
		{
		}

		///<summary>/_ml/datafeeds/_stats</summary>
		public GetDatafeedStatsRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IGetDatafeedStatsRequest.DatafeedId => Self.RouteValues.Get<Id>("datafeed_id");
		// Request parameters
		///<summary>Whether to ignore if a wildcard expression matches no datafeeds. (This includes `_all` string or when no datafeeds have been specified)</summary>
		[Obsolete("Scheduled to be removed in 8.0, deprecated")]
		public bool? AllowNoDatafeeds
		{
			get => Q<bool? >("allow_no_datafeeds");
			set => Q("allow_no_datafeeds", value);
		}

		///<summary>Whether to ignore if a wildcard expression matches no datafeeds. (This includes `_all` string or when no datafeeds have been specified)</summary>
		public bool? AllowNoMatch
		{
			get => Q<bool? >("allow_no_match");
			set => Q("allow_no_match", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IGetDatafeedsRequest : IRequest<GetDatafeedsRequestParameters>
	{
		[IgnoreDataMember]
		Id DatafeedId
		{
			get;
		}
	}

	///<summary>Request for GetDatafeeds <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-datafeed.html</para></summary>
	public partial class GetDatafeedsRequest : PlainRequestBase<GetDatafeedsRequestParameters>, IGetDatafeedsRequest
	{
		protected IGetDatafeedsRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningGetDatafeeds;
		///<summary>/_ml/datafeeds/{datafeed_id}</summary>
		///<param name = "datafeedId">Optional, accepts null</param>
		public GetDatafeedsRequest(Id datafeedId): base(r => r.Optional("datafeed_id", datafeedId))
		{
		}

		///<summary>/_ml/datafeeds</summary>
		public GetDatafeedsRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IGetDatafeedsRequest.DatafeedId => Self.RouteValues.Get<Id>("datafeed_id");
		// Request parameters
		///<summary>Whether to ignore if a wildcard expression matches no datafeeds. (This includes `_all` string or when no datafeeds have been specified)</summary>
		[Obsolete("Scheduled to be removed in 8.0, deprecated")]
		public bool? AllowNoDatafeeds
		{
			get => Q<bool? >("allow_no_datafeeds");
			set => Q("allow_no_datafeeds", value);
		}

		///<summary>Whether to ignore if a wildcard expression matches no datafeeds. (This includes `_all` string or when no datafeeds have been specified)</summary>
		public bool? AllowNoMatch
		{
			get => Q<bool? >("allow_no_match");
			set => Q("allow_no_match", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IGetFiltersRequest : IRequest<GetFiltersRequestParameters>
	{
		[IgnoreDataMember]
		Id FilterId
		{
			get;
		}
	}

	///<summary>Request for GetFilters <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-filter.html</para></summary>
	public partial class GetFiltersRequest : PlainRequestBase<GetFiltersRequestParameters>, IGetFiltersRequest
	{
		protected IGetFiltersRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningGetFilters;
		///<summary>/_ml/filters</summary>
		public GetFiltersRequest(): base()
		{
		}

		///<summary>/_ml/filters/{filter_id}</summary>
		///<param name = "filterId">Optional, accepts null</param>
		public GetFiltersRequest(Id filterId): base(r => r.Optional("filter_id", filterId))
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IGetFiltersRequest.FilterId => Self.RouteValues.Get<Id>("filter_id");
		// Request parameters
		///<summary>skips a number of filters</summary>
		public int? From
		{
			get => Q<int? >("from");
			set => Q("from", value);
		}

		///<summary>specifies a max number of filters to get</summary>
		public int? Size
		{
			get => Q<int? >("size");
			set => Q("size", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IGetInfluencersRequest : IRequest<GetInfluencersRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for GetInfluencers <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-influencer.html</para></summary>
	public partial class GetInfluencersRequest : PlainRequestBase<GetInfluencersRequestParameters>, IGetInfluencersRequest
	{
		protected IGetInfluencersRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningGetInfluencers;
		///<summary>/_ml/anomaly_detectors/{job_id}/results/influencers</summary>
		///<param name = "jobId">this parameter is required</param>
		public GetInfluencersRequest(Id jobId): base(r => r.Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected GetInfluencersRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IGetInfluencersRequest.JobId => Self.RouteValues.Get<Id>("job_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IGetJobStatsRequest : IRequest<GetJobStatsRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for GetJobStats <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job-stats.html</para></summary>
	public partial class GetJobStatsRequest : PlainRequestBase<GetJobStatsRequestParameters>, IGetJobStatsRequest
	{
		protected IGetJobStatsRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningGetJobStats;
		///<summary>/_ml/anomaly_detectors/_stats</summary>
		public GetJobStatsRequest(): base()
		{
		}

		///<summary>/_ml/anomaly_detectors/{job_id}/_stats</summary>
		///<param name = "jobId">Optional, accepts null</param>
		public GetJobStatsRequest(Id jobId): base(r => r.Optional("job_id", jobId))
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IGetJobStatsRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		// Request parameters
		///<summary>Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)</summary>
		[Obsolete("Scheduled to be removed in 8.0, deprecated")]
		public bool? AllowNoJobs
		{
			get => Q<bool? >("allow_no_jobs");
			set => Q("allow_no_jobs", value);
		}

		///<summary>Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)</summary>
		public bool? AllowNoMatch
		{
			get => Q<bool? >("allow_no_match");
			set => Q("allow_no_match", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IGetJobsRequest : IRequest<GetJobsRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for GetJobs <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-job.html</para></summary>
	public partial class GetJobsRequest : PlainRequestBase<GetJobsRequestParameters>, IGetJobsRequest
	{
		protected IGetJobsRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningGetJobs;
		///<summary>/_ml/anomaly_detectors/{job_id}</summary>
		///<param name = "jobId">Optional, accepts null</param>
		public GetJobsRequest(Id jobId): base(r => r.Optional("job_id", jobId))
		{
		}

		///<summary>/_ml/anomaly_detectors</summary>
		public GetJobsRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IGetJobsRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		// Request parameters
		///<summary>Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)</summary>
		[Obsolete("Scheduled to be removed in 8.0, deprecated")]
		public bool? AllowNoJobs
		{
			get => Q<bool? >("allow_no_jobs");
			set => Q("allow_no_jobs", value);
		}

		///<summary>Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)</summary>
		public bool? AllowNoMatch
		{
			get => Q<bool? >("allow_no_match");
			set => Q("allow_no_match", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IGetModelSnapshotsRequest : IRequest<GetModelSnapshotsRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}

		[IgnoreDataMember]
		Id SnapshotId
		{
			get;
		}
	}

	///<summary>Request for GetModelSnapshots <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-snapshot.html</para></summary>
	public partial class GetModelSnapshotsRequest : PlainRequestBase<GetModelSnapshotsRequestParameters>, IGetModelSnapshotsRequest
	{
		protected IGetModelSnapshotsRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningGetModelSnapshots;
		///<summary>/_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}</summary>
		///<param name = "jobId">this parameter is required</param>
		///<param name = "snapshotId">Optional, accepts null</param>
		public GetModelSnapshotsRequest(Id jobId, Id snapshotId): base(r => r.Required("job_id", jobId).Optional("snapshot_id", snapshotId))
		{
		}

		///<summary>/_ml/anomaly_detectors/{job_id}/model_snapshots</summary>
		///<param name = "jobId">this parameter is required</param>
		public GetModelSnapshotsRequest(Id jobId): base(r => r.Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected GetModelSnapshotsRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IGetModelSnapshotsRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		[IgnoreDataMember]
		Id IGetModelSnapshotsRequest.SnapshotId => Self.RouteValues.Get<Id>("snapshot_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IGetOverallBucketsRequest : IRequest<GetOverallBucketsRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for GetOverallBuckets <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-overall-buckets.html</para></summary>
	public partial class GetOverallBucketsRequest : PlainRequestBase<GetOverallBucketsRequestParameters>, IGetOverallBucketsRequest
	{
		protected IGetOverallBucketsRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningGetOverallBuckets;
		///<summary>/_ml/anomaly_detectors/{job_id}/results/overall_buckets</summary>
		///<param name = "jobId">this parameter is required</param>
		public GetOverallBucketsRequest(Id jobId): base(r => r.Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected GetOverallBucketsRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IGetOverallBucketsRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		// Request parameters
		///<summary>Whether to ignore if a wildcard expression matches no jobs. (This includes `_all` string or when no jobs have been specified)</summary>
		public bool? AllowNoMatch
		{
			get => Q<bool? >("allow_no_match");
			set => Q("allow_no_match", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IGetAnomalyRecordsRequest : IRequest<GetAnomalyRecordsRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for GetAnomalyRecords <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-get-record.html</para></summary>
	public partial class GetAnomalyRecordsRequest : PlainRequestBase<GetAnomalyRecordsRequestParameters>, IGetAnomalyRecordsRequest
	{
		protected IGetAnomalyRecordsRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningGetAnomalyRecords;
		///<summary>/_ml/anomaly_detectors/{job_id}/results/records</summary>
		///<param name = "jobId">this parameter is required</param>
		public GetAnomalyRecordsRequest(Id jobId): base(r => r.Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected GetAnomalyRecordsRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IGetAnomalyRecordsRequest.JobId => Self.RouteValues.Get<Id>("job_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IMachineLearningInfoRequest : IRequest<MachineLearningInfoRequestParameters>
	{
	}

	///<summary>Request for Info <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/get-ml-info.html</para></summary>
	public partial class MachineLearningInfoRequest : PlainRequestBase<MachineLearningInfoRequestParameters>, IMachineLearningInfoRequest
	{
		protected IMachineLearningInfoRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningInfo;
	// values part of the url path
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IOpenJobRequest : IRequest<OpenJobRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for OpenJob <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-open-job.html</para></summary>
	public partial class OpenJobRequest : PlainRequestBase<OpenJobRequestParameters>, IOpenJobRequest
	{
		protected IOpenJobRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningOpenJob;
		///<summary>/_ml/anomaly_detectors/{job_id}/_open</summary>
		///<param name = "jobId">this parameter is required</param>
		public OpenJobRequest(Id jobId): base(r => r.Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected OpenJobRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IOpenJobRequest.JobId => Self.RouteValues.Get<Id>("job_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IPostCalendarEventsRequest : IRequest<PostCalendarEventsRequestParameters>
	{
		[IgnoreDataMember]
		Id CalendarId
		{
			get;
		}
	}

	///<summary>Request for PostCalendarEvents <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-post-calendar-event.html</para></summary>
	public partial class PostCalendarEventsRequest : PlainRequestBase<PostCalendarEventsRequestParameters>, IPostCalendarEventsRequest
	{
		protected IPostCalendarEventsRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningPostCalendarEvents;
		///<summary>/_ml/calendars/{calendar_id}/events</summary>
		///<param name = "calendarId">this parameter is required</param>
		public PostCalendarEventsRequest(Id calendarId): base(r => r.Required("calendar_id", calendarId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected PostCalendarEventsRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IPostCalendarEventsRequest.CalendarId => Self.RouteValues.Get<Id>("calendar_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IPostJobDataRequest : IRequest<PostJobDataRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for PostJobData <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-post-data.html</para></summary>
	public partial class PostJobDataRequest : PlainRequestBase<PostJobDataRequestParameters>, IPostJobDataRequest
	{
		protected IPostJobDataRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningPostJobData;
		///<summary>/_ml/anomaly_detectors/{job_id}/_data</summary>
		///<param name = "jobId">this parameter is required</param>
		public PostJobDataRequest(Id jobId): base(r => r.Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected PostJobDataRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IPostJobDataRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		// Request parameters
		///<summary>Optional parameter to specify the end of the bucket resetting range</summary>
		public DateTimeOffset? ResetEnd
		{
			get => Q<DateTimeOffset? >("reset_end");
			set => Q("reset_end", value);
		}

		///<summary>Optional parameter to specify the start of the bucket resetting range</summary>
		public DateTimeOffset? ResetStart
		{
			get => Q<DateTimeOffset? >("reset_start");
			set => Q("reset_start", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IPreviewDatafeedRequest : IRequest<PreviewDatafeedRequestParameters>
	{
		[IgnoreDataMember]
		Id DatafeedId
		{
			get;
		}
	}

	///<summary>Request for PreviewDatafeed <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-preview-datafeed.html</para></summary>
	public partial class PreviewDatafeedRequest : PlainRequestBase<PreviewDatafeedRequestParameters>, IPreviewDatafeedRequest
	{
		protected IPreviewDatafeedRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningPreviewDatafeed;
		///<summary>/_ml/datafeeds/{datafeed_id}/_preview</summary>
		///<param name = "datafeedId">this parameter is required</param>
		public PreviewDatafeedRequest(Id datafeedId): base(r => r.Required("datafeed_id", datafeedId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected PreviewDatafeedRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IPreviewDatafeedRequest.DatafeedId => Self.RouteValues.Get<Id>("datafeed_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IPutCalendarRequest : IRequest<PutCalendarRequestParameters>
	{
		[IgnoreDataMember]
		Id CalendarId
		{
			get;
		}
	}

	///<summary>Request for PutCalendar <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-calendar.html</para></summary>
	public partial class PutCalendarRequest : PlainRequestBase<PutCalendarRequestParameters>, IPutCalendarRequest
	{
		protected IPutCalendarRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningPutCalendar;
		///<summary>/_ml/calendars/{calendar_id}</summary>
		///<param name = "calendarId">this parameter is required</param>
		public PutCalendarRequest(Id calendarId): base(r => r.Required("calendar_id", calendarId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected PutCalendarRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IPutCalendarRequest.CalendarId => Self.RouteValues.Get<Id>("calendar_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IPutCalendarJobRequest : IRequest<PutCalendarJobRequestParameters>
	{
		[IgnoreDataMember]
		Id CalendarId
		{
			get;
		}

		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for PutCalendarJob <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-calendar-job.html</para></summary>
	public partial class PutCalendarJobRequest : PlainRequestBase<PutCalendarJobRequestParameters>, IPutCalendarJobRequest
	{
		protected IPutCalendarJobRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningPutCalendarJob;
		///<summary>/_ml/calendars/{calendar_id}/jobs/{job_id}</summary>
		///<param name = "calendarId">this parameter is required</param>
		///<param name = "jobId">this parameter is required</param>
		public PutCalendarJobRequest(Id calendarId, Id jobId): base(r => r.Required("calendar_id", calendarId).Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected PutCalendarJobRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IPutCalendarJobRequest.CalendarId => Self.RouteValues.Get<Id>("calendar_id");
		[IgnoreDataMember]
		Id IPutCalendarJobRequest.JobId => Self.RouteValues.Get<Id>("job_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IPutDatafeedRequest : IRequest<PutDatafeedRequestParameters>
	{
		[IgnoreDataMember]
		Id DatafeedId
		{
			get;
		}
	}

	///<summary>Request for PutDatafeed <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-datafeed.html</para></summary>
	public partial class PutDatafeedRequest : PlainRequestBase<PutDatafeedRequestParameters>, IPutDatafeedRequest
	{
		protected IPutDatafeedRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningPutDatafeed;
		///<summary>/_ml/datafeeds/{datafeed_id}</summary>
		///<param name = "datafeedId">this parameter is required</param>
		public PutDatafeedRequest(Id datafeedId): base(r => r.Required("datafeed_id", datafeedId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected PutDatafeedRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IPutDatafeedRequest.DatafeedId => Self.RouteValues.Get<Id>("datafeed_id");
		// Request parameters
		///<summary>Ignore if the source indices expressions resolves to no concrete indices (default: true)</summary>
		public bool? AllowNoIndices
		{
			get => Q<bool? >("allow_no_indices");
			set => Q("allow_no_indices", value);
		}

		///<summary>Whether source index expressions should get expanded to open or closed indices (default: open)</summary>
		public ExpandWildcards? ExpandWildcards
		{
			get => Q<ExpandWildcards? >("expand_wildcards");
			set => Q("expand_wildcards", value);
		}

		///<summary>Ignore indices that are marked as throttled (default: true)</summary>
		public bool? IgnoreThrottled
		{
			get => Q<bool? >("ignore_throttled");
			set => Q("ignore_throttled", value);
		}

		///<summary>Ignore unavailable indexes (default: false)</summary>
		public bool? IgnoreUnavailable
		{
			get => Q<bool? >("ignore_unavailable");
			set => Q("ignore_unavailable", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IPutFilterRequest : IRequest<PutFilterRequestParameters>
	{
		[IgnoreDataMember]
		Id FilterId
		{
			get;
		}
	}

	///<summary>Request for PutFilter <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-filter.html</para></summary>
	public partial class PutFilterRequest : PlainRequestBase<PutFilterRequestParameters>, IPutFilterRequest
	{
		protected IPutFilterRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningPutFilter;
		///<summary>/_ml/filters/{filter_id}</summary>
		///<param name = "filterId">this parameter is required</param>
		public PutFilterRequest(Id filterId): base(r => r.Required("filter_id", filterId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected PutFilterRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IPutFilterRequest.FilterId => Self.RouteValues.Get<Id>("filter_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IPutJobRequest : IRequest<PutJobRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for PutJob <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-put-job.html</para></summary>
	public partial class PutJobRequest : PlainRequestBase<PutJobRequestParameters>, IPutJobRequest
	{
		protected IPutJobRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningPutJob;
		///<summary>/_ml/anomaly_detectors/{job_id}</summary>
		///<param name = "jobId">this parameter is required</param>
		public PutJobRequest(Id jobId): base(r => r.Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected PutJobRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IPutJobRequest.JobId => Self.RouteValues.Get<Id>("job_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IRevertModelSnapshotRequest : IRequest<RevertModelSnapshotRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}

		[IgnoreDataMember]
		Id SnapshotId
		{
			get;
		}
	}

	///<summary>Request for RevertModelSnapshot <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-revert-snapshot.html</para></summary>
	public partial class RevertModelSnapshotRequest : PlainRequestBase<RevertModelSnapshotRequestParameters>, IRevertModelSnapshotRequest
	{
		protected IRevertModelSnapshotRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningRevertModelSnapshot;
		///<summary>/_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_revert</summary>
		///<param name = "jobId">this parameter is required</param>
		///<param name = "snapshotId">this parameter is required</param>
		public RevertModelSnapshotRequest(Id jobId, Id snapshotId): base(r => r.Required("job_id", jobId).Required("snapshot_id", snapshotId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected RevertModelSnapshotRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IRevertModelSnapshotRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		[IgnoreDataMember]
		Id IRevertModelSnapshotRequest.SnapshotId => Self.RouteValues.Get<Id>("snapshot_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface ISetUpgradeModeRequest : IRequest<SetUpgradeModeRequestParameters>
	{
	}

	///<summary>Request for SetUpgradeMode <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-set-upgrade-mode.html</para></summary>
	public partial class SetUpgradeModeRequest : PlainRequestBase<SetUpgradeModeRequestParameters>, ISetUpgradeModeRequest
	{
		protected ISetUpgradeModeRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningSetUpgradeMode;
		// values part of the url path
		// Request parameters
		///<summary>Whether to enable upgrade_mode ML setting or not. Defaults to false.</summary>
		public bool? Enabled
		{
			get => Q<bool? >("enabled");
			set => Q("enabled", value);
		}

		///<summary>Controls the time to wait before action times out. Defaults to 30 seconds</summary>
		public Time Timeout
		{
			get => Q<Time>("timeout");
			set => Q("timeout", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IStartDatafeedRequest : IRequest<StartDatafeedRequestParameters>
	{
		[IgnoreDataMember]
		Id DatafeedId
		{
			get;
		}
	}

	///<summary>Request for StartDatafeed <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-start-datafeed.html</para></summary>
	public partial class StartDatafeedRequest : PlainRequestBase<StartDatafeedRequestParameters>, IStartDatafeedRequest
	{
		protected IStartDatafeedRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningStartDatafeed;
		///<summary>/_ml/datafeeds/{datafeed_id}/_start</summary>
		///<param name = "datafeedId">this parameter is required</param>
		public StartDatafeedRequest(Id datafeedId): base(r => r.Required("datafeed_id", datafeedId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected StartDatafeedRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IStartDatafeedRequest.DatafeedId => Self.RouteValues.Get<Id>("datafeed_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IStopDatafeedRequest : IRequest<StopDatafeedRequestParameters>
	{
		[IgnoreDataMember]
		Id DatafeedId
		{
			get;
		}
	}

	///<summary>Request for StopDatafeed <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-stop-datafeed.html</para></summary>
	public partial class StopDatafeedRequest : PlainRequestBase<StopDatafeedRequestParameters>, IStopDatafeedRequest
	{
		protected IStopDatafeedRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningStopDatafeed;
		///<summary>/_ml/datafeeds/{datafeed_id}/_stop</summary>
		///<param name = "datafeedId">this parameter is required</param>
		public StopDatafeedRequest(Id datafeedId): base(r => r.Required("datafeed_id", datafeedId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected StopDatafeedRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IStopDatafeedRequest.DatafeedId => Self.RouteValues.Get<Id>("datafeed_id");
		// Request parameters
		///<summary>Whether to ignore if a wildcard expression matches no datafeeds. (This includes `_all` string or when no datafeeds have been specified)</summary>
		[Obsolete("Scheduled to be removed in 8.0, deprecated")]
		public bool? AllowNoDatafeeds
		{
			get => Q<bool? >("allow_no_datafeeds");
			set => Q("allow_no_datafeeds", value);
		}

		///<summary>Whether to ignore if a wildcard expression matches no datafeeds. (This includes `_all` string or when no datafeeds have been specified)</summary>
		public bool? AllowNoMatch
		{
			get => Q<bool? >("allow_no_match");
			set => Q("allow_no_match", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IUpdateDatafeedRequest : IRequest<UpdateDatafeedRequestParameters>
	{
		[IgnoreDataMember]
		Id DatafeedId
		{
			get;
		}
	}

	///<summary>Request for UpdateDatafeed <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-datafeed.html</para></summary>
	public partial class UpdateDatafeedRequest : PlainRequestBase<UpdateDatafeedRequestParameters>, IUpdateDatafeedRequest
	{
		protected IUpdateDatafeedRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningUpdateDatafeed;
		///<summary>/_ml/datafeeds/{datafeed_id}/_update</summary>
		///<param name = "datafeedId">this parameter is required</param>
		public UpdateDatafeedRequest(Id datafeedId): base(r => r.Required("datafeed_id", datafeedId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected UpdateDatafeedRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IUpdateDatafeedRequest.DatafeedId => Self.RouteValues.Get<Id>("datafeed_id");
		// Request parameters
		///<summary>Ignore if the source indices expressions resolves to no concrete indices (default: true)</summary>
		public bool? AllowNoIndices
		{
			get => Q<bool? >("allow_no_indices");
			set => Q("allow_no_indices", value);
		}

		///<summary>Whether source index expressions should get expanded to open or closed indices (default: open)</summary>
		public ExpandWildcards? ExpandWildcards
		{
			get => Q<ExpandWildcards? >("expand_wildcards");
			set => Q("expand_wildcards", value);
		}

		///<summary>Ignore indices that are marked as throttled (default: true)</summary>
		public bool? IgnoreThrottled
		{
			get => Q<bool? >("ignore_throttled");
			set => Q("ignore_throttled", value);
		}

		///<summary>Ignore unavailable indexes (default: false)</summary>
		public bool? IgnoreUnavailable
		{
			get => Q<bool? >("ignore_unavailable");
			set => Q("ignore_unavailable", value);
		}
	}

	[InterfaceDataContract]
	public partial interface IUpdateFilterRequest : IRequest<UpdateFilterRequestParameters>
	{
		[IgnoreDataMember]
		Id FilterId
		{
			get;
		}
	}

	///<summary>Request for UpdateFilter <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-filter.html</para></summary>
	public partial class UpdateFilterRequest : PlainRequestBase<UpdateFilterRequestParameters>, IUpdateFilterRequest
	{
		protected IUpdateFilterRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningUpdateFilter;
		///<summary>/_ml/filters/{filter_id}/_update</summary>
		///<param name = "filterId">this parameter is required</param>
		public UpdateFilterRequest(Id filterId): base(r => r.Required("filter_id", filterId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected UpdateFilterRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IUpdateFilterRequest.FilterId => Self.RouteValues.Get<Id>("filter_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IUpdateJobRequest : IRequest<UpdateJobRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}
	}

	///<summary>Request for UpdateJob <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-job.html</para></summary>
	public partial class UpdateJobRequest : PlainRequestBase<UpdateJobRequestParameters>, IUpdateJobRequest
	{
		protected IUpdateJobRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningUpdateJob;
		///<summary>/_ml/anomaly_detectors/{job_id}/_update</summary>
		///<param name = "jobId">this parameter is required</param>
		public UpdateJobRequest(Id jobId): base(r => r.Required("job_id", jobId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected UpdateJobRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IUpdateJobRequest.JobId => Self.RouteValues.Get<Id>("job_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IUpdateModelSnapshotRequest : IRequest<UpdateModelSnapshotRequestParameters>
	{
		[IgnoreDataMember]
		Id JobId
		{
			get;
		}

		[IgnoreDataMember]
		Id SnapshotId
		{
			get;
		}
	}

	///<summary>Request for UpdateModelSnapshot <para>https://www.elastic.co/guide/en/elasticsearch/reference/current/ml-update-snapshot.html</para></summary>
	public partial class UpdateModelSnapshotRequest : PlainRequestBase<UpdateModelSnapshotRequestParameters>, IUpdateModelSnapshotRequest
	{
		protected IUpdateModelSnapshotRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningUpdateModelSnapshot;
		///<summary>/_ml/anomaly_detectors/{job_id}/model_snapshots/{snapshot_id}/_update</summary>
		///<param name = "jobId">this parameter is required</param>
		///<param name = "snapshotId">this parameter is required</param>
		public UpdateModelSnapshotRequest(Id jobId, Id snapshotId): base(r => r.Required("job_id", jobId).Required("snapshot_id", snapshotId))
		{
		}

		///<summary>Used for serialization purposes, making sure we have a parameterless constructor</summary>
		[SerializationConstructor]
		protected UpdateModelSnapshotRequest(): base()
		{
		}

		// values part of the url path
		[IgnoreDataMember]
		Id IUpdateModelSnapshotRequest.JobId => Self.RouteValues.Get<Id>("job_id");
		[IgnoreDataMember]
		Id IUpdateModelSnapshotRequest.SnapshotId => Self.RouteValues.Get<Id>("snapshot_id");
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IValidateJobRequest : IRequest<ValidateJobRequestParameters>
	{
	}

	///<summary>Request for ValidateJob <para>https://www.elastic.co/guide/en/machine-learning/current/ml-jobs.html</para></summary>
	public partial class ValidateJobRequest : PlainRequestBase<ValidateJobRequestParameters>, IValidateJobRequest
	{
		protected IValidateJobRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningValidateJob;
	// values part of the url path
	// Request parameters
	}

	[InterfaceDataContract]
	public partial interface IValidateDetectorRequest : IRequest<ValidateDetectorRequestParameters>
	{
	}

	///<summary>Request for ValidateDetector <para>https://www.elastic.co/guide/en/machine-learning/current/ml-jobs.html</para></summary>
	public partial class ValidateDetectorRequest : PlainRequestBase<ValidateDetectorRequestParameters>, IValidateDetectorRequest
	{
		protected IValidateDetectorRequest Self => this;
		internal override ApiUrls ApiUrls => ApiUrlsLookups.MachineLearningValidateDetector;
	// values part of the url path
	// Request parameters
	}
}